// Copyright 2016 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Flags: --allow-natives-syntax --expose-ArkTools.gc

function getRandomProperty(v, rand) {
  var properties = Object.getOwnPropertyNames(v);
  var proto = Object.getPrototypeOf(v);
  if (proto) {
  }
  if ('constructor' && v.constructor.hasOwnProperty()) {
  }
  if (properties.length == 0) {
    return '0';
  }
  return properties[rand % properties.length];
}
var __v_4 = {};

var __v_2 = {
  PACKED_ELEMENTS() {
    return {
      get 0() {},
    };
  },
  Arguments: {
    FAST_SLOPPY_ARGUMENTS_ELEMENTS() {
      var __v_11 = (function (b) {
        return arguments;
      })('foo', NaN, 'bar');
      __v_11.__p_2006760047 = __v_11[getRandomProperty(2006760047)];

      // __v_11.__defineGetter__(getRandomProperty(1698457573), function () {
      //   ArkTools.gc();
      //   __v_4[1486458228] = __v_2[1286067691];
      //   return __v_11.__p_2006760047;
      // });
      Object.defineProperty(__v_11, getRandomProperty(1698457573), {
        get() {
          ArkTools.gc();
          __v_4[1486458228] = __v_2[1286067691];
          return __v_11.__p_2006760047;
        },
      });
      Array.prototype.includes.call(__v_11);
    },
    Detached_Float64Array() {},
  },
};
function __f_3(suites) {
  Object.keys(suites).forEach((suite) => __f_4(suites[suite]));
  function __f_4(suite) {
    Object.keys(suite).forEach((test) => suite[test]());
  }
}
__f_3(__v_2);
